import 'dart:typed_data';

import 'src/logic/camera.dart';

import 'flutter_zxing.dart';

Zxing getZxing() => ZxingWeb();

class ZxingWeb implements Zxing {
  ZxingWeb();

  @override
  String version() => 'Unsupported';

  @override
  void setLogEnabled(bool enabled) {}

  @override
  String barcodeFormatName(int format) => 'Unsupported';

  @override
  Encode encodeBarcode({
    required String contents,
    required EncodeParams params,
  }) =>
      throw UnimplementedError();

  @override
  Future<void> startCameraProcessing() => throw UnimplementedError();

  @override
  void stopCameraProcessing() => throw UnimplementedError();

  @override
  Future<Code> processCameraImage(CameraImage image, DecodeParams params) =>
      throw UnimplementedError();

  @override
  Future<Codes> processCameraImageMulti(
          CameraImage image, DecodeParams params) =>
      throw UnimplementedError();

  @override
  Future<Code> readBarcodeImagePathString(String path, DecodeParams params) =>
      throw UnimplementedError();

  @override
  Future<Code> readBarcodeImagePath(XFile path, DecodeParams params) =>
      throw UnimplementedError();

  @override
  Future<Code> readBarcodeImageUrl(String url, DecodeParams params) =>
      throw UnimplementedError();

  @override
  Code readBarcode(Uint8List bytes, DecodeParams params) =>
      throw UnimplementedError();

  @override
  Future<Codes> readBarcodesImagePathString(String path, DecodeParams params) =>
      throw UnimplementedError();

  @override
  Future<Codes> readBarcodesImagePath(XFile path, DecodeParams params) =>
      throw UnimplementedError();

  @override
  Future<Codes> readBarcodesImageUrl(String url, DecodeParams params) =>
      throw UnimplementedError();

  @override
  Codes readBarcodes(Uint8List bytes, DecodeParams params) =>
      throw UnimplementedError();
}
